home *** CD-ROM | disk | FTP | other *** search
/ Software of the Month Club 2000 October / Software of the Month - Ultimate Collection Shareware 277.iso / pc / PROGRAMS / UTILITY / WINLINUX / DATA1.CAB / programs_-_usrdoc / SHADOW-1.{2A / README.{_2 < prev    next >
Text File  |  1999-09-17  |  12KB  |  254 lines

  1. [ $Id: README,v 1.3 1998/12/28 20:34:27 marekm Exp $ ]
  2.  
  3. This is the explanatory document for Julianne Frances Haugh's login
  4. replacement, release 3.  This document was last updated 16 Feb 1997.
  5.  
  6. This software is copyright 1988 - 1997, Julianne F. Haugh.  All rights
  7. reserved.
  8.  
  9. Redistribution and use in source and binary forms, with or without
  10. modification, are permitted provided that the following conditions
  11. are met:
  12. 1. Redistributions of source code must retain the above copyright
  13.    notice, this list of conditions and the following disclaimer.
  14. 2. Redistributions in binary form must reproduce the above copyright
  15.    notice, this list of conditions and the following disclaimer in the
  16.    documentation and/or other materials provided with the distribution.
  17. 3. Neither the name of Julianne F. Haugh nor the names of its contributors
  18.    may be used to endorse or promote products derived from this software
  19.    without specific prior written permission.
  20.  
  21. THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``AS IS'' AND
  22. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  23. IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  24. ARE DISCLAIMED.  IN NO EVENT SHALL JULIE HAUGH OR CONTRIBUTORS BE LIABLE
  25. FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  26. DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  27. OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  28. HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  29. LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  30. OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  31. SUCH DAMAGE.
  32.  
  33. This source code is currently archived on ftp.uu.net in the
  34. comp.sources.misc portion of the USENET archives.  You may also contact
  35. the author, Julianne F. Haugh, at jfh@bga.com if you have any questions
  36. regarding this package.
  37.  
  38. THIS SOFTWARE IS BEING DISTRIBUTED AS-IS.  THE AUTHORS DISCLAIM ALL
  39. LIABILITY FOR ANY CONSEQUENCES OF USE.  THE USER IS SOLELY RESPONSIBLE
  40. FOR THE MAINTENANCE OF THIS SOFTWARE PACKAGE.  THE AUTHORS ARE UNDER NO
  41. OBLIGATION TO PROVIDE MODIFICATIONS OR IMPROVEMENTS.  THE USER IS
  42. ENCOURAGED TO TAKE ANY AND ALL STEPS NEEDED TO PROTECT AGAINST ACCIDENTAL
  43. LOSS OF INFORMATION OR MACHINE RESOURCES.
  44.  
  45. Special thanks are due to Chip Rosenthal for his fine testing efforts;
  46. to Steve Simmons for his work in porting this code to BSD; and to Bill
  47. Kennedy for his contributions of LaserJet printer time and energies.
  48. Also, thanks for Dennis L. Mumaugh for the initial shadow password
  49. information and to Tony Walton (olapw@olgb1.oliv.co.uk) for the System
  50. V Release 4 changes.  Effort in porting to SunOS has been contributed
  51. by Dr. Michael Newberry (miken@cs.adfa.oz.au) and Micheal J. Miller, Jr.
  52. (mke@kaberd.rain.com).  Effort in porting to AT&T UNIX System V Release
  53. 4 has been provided by Andrew Herbert (andrew@werple.pub.uu.oz.au).
  54. Special thanks to Marek Michalkiewicz (marekm@i17linuxb.ists.pwr.wroc.pl)
  55. for taking over the Linux port of this software.
  56.  
  57. New for Release 3.3:
  58.     User-defined authentication has been added.  This allows you to
  59.     write programs to replace the password authentication method
  60.     which uses the crypt() function.
  61.  
  62.     The CrackLib password checking library is supported as of release
  63.     3.3.0.  It allows you to perform pro-active password checking as
  64.     each password is changed.
  65.  
  66. Warning:
  67.     The newuser command will be removed in a later release.
  68.     The libsec.a library will be removed at some point after
  69.       version 3.3.3.
  70.  
  71. This software is described in the 3rd USENIX Security Symposium
  72. proceedings.  These proceedings are available from
  73.  
  74.     USENIX Association
  75.     2560 Ninth Street, Suite 215
  76.     Berkeley, CA 94710
  77.  
  78. The current price is $30 for USENIX members and $39 for non-members.
  79.  
  80. Begin by reading and editing the config.h file.  All options are selected
  81. by using #define's.  A brief description for each available option appears
  82. below.  You may want to print this file out as it is LONG and you will
  83. need to refer to it while editting config.h.  You will also have to edit
  84. the Makefile.  The possible differences are documented there.  Pay close
  85. attention to the install: rule.  Login now runs on about 30 different
  86. varieties of UNIX that I have been made aware of.  If you have any qualms,
  87. you should run "make save" before running "make install".  If something
  88. breaks you can use "make restore" to put things back.  In any case, you
  89. should have a recent system backup as the potential for serious damage
  90. exists.
  91.  
  92. There are special Makefile and config.h files for SVR4, SunOS 4.1, and
  93. Linux systems.  If there is a major UNIX variant that you would like to
  94. see supported, please send working Makefile and config.h files and I will
  95. try to include then in the base distribution.
  96.  
  97. Note that there are MANY options.  As distributed most options are turned
  98. on, which produces a really nice package.  This is the system as used on
  99. some of the authors' machines.  There are many options which may be
  100. selected at run time.  You should refer to the login.5 manual page for
  101. more information regarding these options.
  102.  
  103. There are several files which you may have to replace.  If your system has
  104. a lastlog.h file, you should replace the one which I provide with your
  105. system version.  The pwd.h file that is produced by "make" must agree
  106. exactly with the system supplied version.  You should re-arrange the
  107. fields or #define's until they match.  The same is true for "shadow.h",
  108. if you system provides one.  You may want to replace large portions of
  109. that file (or the entire file) with your system version.  It is provided
  110. for those systems which do NOT provide /usr/include/shadow.h.  If you
  111. do not have a the crypt() function in your library (perhaps because you
  112. are located outside the United States), you may wish to look into the
  113. UFC-crypt package which was posted to comp.sources.misc in volume 23,
  114. issues 97 and 98.
  115.  
  116. Login Defaults File -
  117.     This option selects the name of the file to read for the
  118.     run-time configurable options.  The default value for
  119.     LOGINDEFS is "/etc/login.defs".
  120.  
  121. Shadow [ unreadable ] Password Files -
  122.     This option utilizes an alternate, non-readable file to
  123.     contain the actual encrypted passwords.  This is presumed
  124.     to increase system security by increasing the difficulty
  125.     with which system crackers obtain encrypted passwords.
  126.  
  127.     Select this option by defining the SHADOWPWD macro.
  128.  
  129.     This feature is optional, but only certain commands may
  130.     be compiled with this option disabled.
  131.  
  132. Shadow Group Files -
  133.     This option utilizes an alternate, non-readable file to
  134.     contain encrypted group passwords and group administrator
  135.     information.
  136.  
  137.     This feature allows one or more users to be defined as
  138.     the administrators of a group for the purpose of adding
  139.     or deleting members and changing the group password.
  140.  
  141.     Select this option by defining the SHADOWGRP macro.  You
  142.     must also create an emptry /etc/gshadow file.  You must
  143.     select the SHADOWPWD option if you select SHADOWGRP.
  144.  
  145. DBM Password Files -
  146.     This option utilizes the DBM database access routines to
  147.     increase the performance of user name and ID lookups in the
  148.     password file.  You may select the NDBM database instead
  149.     and have DBM-style access to all user information files.
  150.  
  151.     Select this option by defining both the DBM and GETPWENT
  152.     macros.  The FGETPWENT macro must also be defined or the
  153.     fgetpwent() library routine must be present.
  154.  
  155. Double Length Passwords -
  156.     This option extends the maximum length of a user password
  157.     to 16 characters from eight.
  158.  
  159.     Select this option by defining the DOUBLESIZE macro.
  160.     Credit for this option is due Jonathan Bayer.
  161.  
  162. Password Aging -
  163.     This option includes code to perform password aging.
  164.     Password aging is presumed to increase system security
  165.     by forcing users to change passwords on a regular
  166.     basis.  The resolution on password age is in weeks for
  167.     non-shadow password systems and in days otherwise.
  168.  
  169.     Select this option by defining the AGING macro.
  170.  
  171. Syslog -
  172.     This option causes the code to log various errors or
  173.     special conditions to the syslog daemon.  The types of
  174.     information that are logged security violations, changes
  175.     to the user database, and program errors.
  176.  
  177.     Select syslog processing by defining the USE_SYSLOG
  178.     macro.
  179.  
  180. Remote Login -
  181.     This option causes certain network login code to be
  182.     inserted to enable the "rlogin" and "telnet" commands to
  183.     work.  To enable network logins, define the RLOGIN macro.
  184.     If your <utmp.h> file includes a ut_host member, you must
  185.     also define the UT_HOST macro.  Note that SVR4 has a
  186.     "utmpx" file to hold the ut_host member, so UT_HOST is
  187.     not required.
  188.  
  189. Directory Reading Routines -
  190.     Three different macros are defined for opening and reading
  191.     directories.  They are DIR_XENIX, DIR_BSD, and DIR_SYSV.
  192.     Refer to config.h for more details.
  193.  
  194. Library Configuration Macros -
  195.     The following macros define the functions which are present
  196.     in your system library:
  197.  
  198.     HAVE_ULIMIT    - Define if your UNIX supports ulimit()
  199.     GETPWENT    - Define if you want my GETPWENT(3) routines
  200.     GETGRENT    - Define if you want my GETGRENT(3) routines
  201.     NEED_AL64    - Define if library does not include a64l()
  202.     NEED_MKDIR    - Define if system does not have mkdir()
  203.     NEED_RMDIR    - Define if system does not have rmdir()
  204.     NEED_RENAME    - Define if system does not have rename()
  205.     NEED_STRSTR    - Define if library does not include strstr()
  206.  
  207. Password File Information -
  208.     The following macros define the fields which are present in
  209.     your system password file.  Because the system was compiled
  210.     to use the password file in its original form, these macros
  211.     must agree with the actual contents of the file.
  212.  
  213.     BSD_QUOTA    - the pw_quota field exists
  214.     ATT_AGE        - the pw_age field exists
  215.     ATT_COMMENT    - the pw_comment field exists
  216.  
  217. Signal Return Type -
  218.     Because different systems return different data types for
  219.     the signal() system call, you must define SIGTYPE to be
  220.     the data type your system uses.  The default is "int", but
  221.     "void" is another popular value.
  222.  
  223. SunOS 4.1.1 Notes: (mke@kaberd.rain.com) Michael J. Miller Jr.
  224.  
  225. [ These notes were edited from the original.  The standard Makefile
  226.   and config.h have notes indicating the changes required for SunOS.
  227.   Steve Allen at Lick has been working on cleaning up this platform. ]
  228.  
  229. You'll need to do the following to get the shadow password dist to
  230. compile on a sun 4.1.1 system.
  231.  
  232. If using csh, then type 'rehash'.  cd to the /etc directory and type
  233. 'pwconv'.  This will create two files,  nshadow and npasswd.
  234. now type 'mkpasswd -f nshadow' and 'mkpasswd -f npasswd'.  This will
  235. create the shadow password file.
  236.  
  237. Note: ftp will still use the old password file.  Modified versions of
  238.       ftpd are available, or you may modify the version of ftpd from
  239.       any of the freely redistributable ftpd clones.
  240.  
  241. Note: If you run suns pcnfs, be aware that it will still be looking at the
  242.       old password file as well.  I may work out a patch for this, as I am
  243.       fairly certain the stuff on the sun side comes with source.
  244.  
  245. Note: I have compiled this package with the standard c compiler and
  246.       suns unbundled c compiler at an optomization level of 2 in
  247.       both casses.  Haven't tried gcc yet, so I don't know wether it
  248.       works.  Same goes for suns C++ compiler.
  249.  
  250. Note: Has been compiled on a sun 3/75 running sunos 4.1.1.  Should compile
  251.       fine on sun 4's running 4.1.1, and may compile on suns running
  252.       4.1.  Have no idea what sort of success people will have that
  253.       are running 4.03 and older versions.
  254.